Developers use programming environments to design systems.
Matrix language environments are generally used for modeling systems that are predominantly characterized by numeric-intensive computations such as matrix operations from linear algebra.
Statechart environments are used for modeling systems predominantly characterized by complex modes, or states, particularly when combined with flow diagrams for describing control flow between states.
Block diagram environments are generally used for modeling systems predominantly characterized by complex signal flow.